package 构建模式;



/**
 * 定义一个操作的算法骨架，而将一些步骤延迟到子类中，使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤
 * 如果一个读 加密卡 的程序，读的方式一样，但解密方法不一样，使用的时候可以指定解密方式进行特定步骤的定义
 */
public class 模板方法模式 {
    public static void main(String[] args) {
        readCar rc = new ISO1549();
        rc.read();
    }
}
//定义模板类
abstract class readCar{
    public void read(){
        System.out.println("连接设备");
        System.out.println(decode("读到的数据"));
        System.out.println("关闭设备");
    }
    abstract String decode(String encode);
}
class ISO1549 extends readCar{
     //这里我们只有进行解密操作就可以了
    @Override
    String decode(String encode){
        return "Sh1方法解密:"+encode;
    }
}